Para el siguiente trabajo se eligió como herramienta el lenguaje de programación R con las librerías para graficar como ggplot2, dplyr y scales. Y como herramienta secundaria se usó la aplicación web datawraperr debido a su gran facilidad de uso y variadas opciones.
# Instalar paquetes necesarios si aún no están instaladosif (!requireNamespace("ggplot2", quietly =TRUE)) install.packages("ggplot2")if (!requireNamespace("dplyr", quietly =TRUE)) install.packages("dplyr")if (!requireNamespace("scales", quietly =TRUE)) install.packages("scales")if (!require(waffle)) install.packages("waffle")
Loading required package: waffle
Loading required package: ggplot2
if (!require(highcharter)) install.packages("highcharter")
Loading required package: highcharter
Registered S3 method overwritten by 'quantmod':
method from
as.zoo.data.frame zoo
Highcharts (www.highcharts.com) is a Highsoft software product which is
not free for commercial and Governmental use
if (!require(visNetwork)) install.packages("visNetwork")
Loading required package: visNetwork
if (!require(igraph)) install.packages("igraph")
Loading required package: igraph
Attaching package: 'igraph'
The following objects are masked from 'package:stats':
decompose, spectrum
The following object is masked from 'package:base':
union
if (!require(ggraph)) install.packages("ggraph")
Loading required package: ggraph
if (!require(datasauRus)) install.packages("datasauRus")
Loading required package: datasauRus
library(ggplot2)library(dplyr)
Attaching package: 'dplyr'
The following objects are masked from 'package:igraph':
as_data_frame, groups, union
The following objects are masked from 'package:stats':
filter, lag
The following objects are masked from 'package:base':
intersect, setdiff, setequal, union
# Leer el archivo CSVgolesCr7 <-read.csv('CristianoGoles.csv')
# Agrupar y contar los goles por clubgoals_by_club <- golesCr7 %>%group_by(Club) %>%summarise(Goals =n()) %>%arrange(desc(Goals))# Calcular el porcentaje de goles por clubgoals_by_club <- goals_by_club %>%mutate(Percentage = Goals /sum(Goals) *100)# Crear etiquetas para la leyenda con nombre del club, cantidad de goles y porcentajegoals_by_club <- goals_by_club %>%mutate(LegendLabel =paste(Club, "-", Goals, "(", round(Percentage, 1), "%)", sep =""))# Convertir LegendLabel a factor y ordenar de mayor a menorgoals_by_club$LegendLabel <-factor(goals_by_club$LegendLabel, levels = goals_by_club$LegendLabel)# Crear gráfico de pastel sin etiquetas dentro y con leyenda ordenadaggplot(goals_by_club, aes(x ="", y = Goals, fill = LegendLabel)) +geom_bar(width =1, stat ="identity", color ="white") +coord_polar("y", start =0) +theme_void() +labs(title ="Cantidad de Goles de Cristiano Ronaldo por Clubes") +theme(legend.position ="right") +# Usar los colores de la paleta y mostrar la leyenda personalizada ordenadascale_fill_manual(values = scales::hue_pal()(nrow(goals_by_club)))
Contexto: Cristiano Ronaldo el máximo goleador en la historia del futbol y ha distribuido sus goles en todos los clubes en los que ha estado, aquí se muestra cómo se han distribuidos esos goles por club.
Tipo de visualización: Grafico de torta o pie, que sirve para representar datos categóricos, donde cada categoría se representa como una porción de un círculo.
Fuente de datos: Kaggle, https://www.kaggle.com/datasets/azminetoushikwasi/cr7-cristiano-ronaldo-all-club-goals-stats
Dia 2: Neo Chart
# Cargar el dataset integrado en Rdata <- mtcars# Agrupar por número de cilindros y contar la cantidad de autoscylinders_data <- data %>% dplyr::count(cyl =as.factor(cyl))# Crear el gráfico de barras estilizadoggplot(cylinders_data, aes(x =reorder(cyl, n), y = n, fill = cyl)) +geom_bar(stat ="identity") +theme_minimal(base_size =15) +labs(title ="Número de Autos por Cilindros (Neo Chart)", x ="Cilindros", y ="Cantidad de Autos") +theme(plot.title =element_text(size =20, face ="bold"),axis.text.x =element_text(angle =0, hjust =1),legend.position ="none" ) +scale_fill_manual(values =c("#00A5E0", "#FFAE03", "#F45B69", "#9BDEAC"))
Contexto: Información sobre 32 automóviles, incluyendo variables de combustible, número de cilindros, pesos y otras características físicas y técnicas de los automóviles.
Tipo de visualización: Grafico de Neo Chart, en este caso, se crea un gráfico de barras estilizado.
Fuente de datos: Datos integrado en R Studio.
Dia 3: Makeover Chart
# Cargar el datasetdata <-data.frame(Month =seq.Date(from =as.Date("1949-01-01"), by ="month", length.out =length(AirPassengers)),Passengers =as.numeric(AirPassengers))# Identificar los picos (máximos y mínimos)max_index <-which.max(data$Passengers)min_index <-which.min(data$Passengers)# Crear un dataframe con solo los picospicos <- data[c(max_index, min_index), ]# Crear gráfico de líneas con anotacionesggplot(data, aes(x = Month, y = Passengers)) +geom_line(color ="#2E86C1", size =1.2) +geom_point(color ="#2E86C1", size =3) +theme_minimal(base_size =15) +labs(title ="Número de Pasajeros de Aerolíneas", x ="Fecha", y ="Pasajeros") +geom_text(data = picos, aes(label =round(Passengers, 1)), vjust =-0.5, color ="black", size =4) +theme(plot.title =element_text(size =20, face ="bold") )
Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
ℹ Please use `linewidth` instead.
Contexto: AirPassengers fue introducido por el autor John Chambers y contiene información sobre el número mensual de pasajeros de aerolíneas en los Estados Unidos. En este caso se quiere mostrar la tendencia de viajes durante el periodo de años que dispone el dataSet.
Tipo de visualización: Makeover Chart
Fuente de datos: Datos integrado en R Studio.
Dia 4: Waffle Chart
# Convertir el dataset Titanic en un data frame y agrupar por clasedata <-as.data.frame(Titanic)class_data <- data %>% dplyr::filter(Survived =="Yes") %>% dplyr::group_by(Class) %>% dplyr::summarise(Frequency =sum(Freq))# Crear gráfico de wafflewaffle::waffle(class_data$Frequency, rows =5, size =0.5, colors =c("#00A5E0", "#FFAE03", "#F45B69", "#9BDEAC"),title ="Supervivencia en el Titanic por Clase")
Contexto: Mediante el grafico se pretende visualizar que magnitud de personas dependiendo la clase del boleto que compraron se salvaron.
Tipo de visualización: Waffle Chart
Fuente de datos: Datos integrado en R Studio sobre el Titanic.
Dia 5: Diverging Chart
# Calcular la media del mpgdata <- mtcarsmpg_mean <-mean(data$mpg)# Crear un dataframe para gráfico de barras divergentesdata <- data %>% dplyr::mutate(Divergence = mpg - mpg_mean) %>% dplyr::mutate(Car =rownames(data)) %>% dplyr::arrange(Divergence)# Crear gráfico de barras divergentesggplot(data, aes(x =reorder(Car, Divergence), y = Divergence, fill = Divergence >0)) +geom_bar(stat ="identity") +coord_flip() +scale_fill_manual(values =c("red", "green"), guide =FALSE) +theme_minimal(base_size =15) +labs(title ="Desviación del Millaje por Galón respecto a la Media ", x ="Auto", y ="Desviación") +theme(plot.title =element_text(size =20, face ="bold") )
Warning: The `guide` argument in `scale_*()` cannot be `FALSE`. This was deprecated in
ggplot2 3.3.4.
ℹ Please use "none" instead.
Contexto: Mediante el grafico se visualiza rápidamente y de manera clara cómo se distribuye el consumo de combustible entre diferentes modelos de automóviles.
Tipo de visualización: Diverging Chart
Fuente de datos: Datos integrado en R Studio sobre algunos modelos de autos.
Dia 6: Data Day
# Cargar el datasetchile_data <-read.csv("chileDead.csv")# Visualizar las primeras filas para asegurarnos de que se cargó correctamentechile_data <- chile_data %>%filter(DEATH_CAUSE !="_T")# Filtrar los datos relevantes y agrupar por causa de muerte para calcular la media de `OBS_VALUE`top_causes <- chile_data %>%filter(!is.na(DEATH_CAUSE) &!is.na(OBS_VALUE)) %>%# Filtramos datos con causas de muerte y valores observadosgroup_by(DEATH_CAUSE) %>%# Agrupamos por causa de muertesummarise(mean_value =mean(OBS_VALUE, na.rm =TRUE)) %>%# Calculamos la media de OBS_VALUEarrange(desc(mean_value)) %>%# Ordenamos de mayor a menortop_n(10, mean_value) # Seleccionamos el top 10# Graficar el Top 10 de Causas de Muerte# Graficar el Top 10 de Causas de Muerte con etiquetasggplot(top_causes, aes(x =reorder(DEATH_CAUSE, mean_value), y = mean_value)) +geom_bar(stat ="identity", fill ="steelblue") +coord_flip() +# Volteamos el gráfico para mayor claridadgeom_text(aes(label =round(mean_value, 1)), # Agregamos etiquetas con valores redondeadoshjust =-0.2, # Ajustamos la posición horizontal fuera de la barracolor ="black", size =2.0) +# Cambiamos el color y tamaño de la etiquetalabs(title ="Top 10 Causas de Muerte en Chile",x ="Causa de Muerte",y ="Valor Promedio de Mortalidad") +theme_minimal()
Contexto: Mediante el grafico se visualiza el TOP 10 de las causas de muertes que se tiene registro en Chile en el dataSet proporcionado por OECD.
Tipo de visualización:Grafico de barras horizontales.
Fuente de datos: OECD Data Explorer https://acortar.link/2UDMpR.
—————————- Distributions ————————————-
Dia 7: Hazards
# Calcular el promedio de muertes por causa y seleccionar las 20 principalestop_causes <- chile_data %>%filter(!is.na(DEATH_CAUSE) &!is.na(OBS_VALUE)) %>%group_by(DEATH_CAUSE) %>%summarise(mean_deaths =mean(OBS_VALUE, na.rm =TRUE)) %>%arrange(desc(mean_deaths)) %>%slice_head(n =15) # Seleccionar las 20 principales# Filtrar el dataset original para mantener solo las 20 causas principalesrisk_data <- chile_data %>%filter(DEATH_CAUSE %in% top_causes$DEATH_CAUSE &!is.na(OBS_VALUE)) %>%group_by(TIME_PERIOD, DEATH_CAUSE) %>%summarise(mean_deaths =mean(OBS_VALUE, na.rm =TRUE)) %>%ungroup()
`summarise()` has grouped output by 'TIME_PERIOD'. You can override using the
`.groups` argument.
# Crear el gráfico de línea para ver la tendencia de riesgo a lo largo del tiempo para las 15 causas principalesggplot(risk_data, aes(x = TIME_PERIOD, y = mean_deaths, color = DEATH_CAUSE)) +geom_line(size =1) +labs(title ="Top 15 Causas de Muerte en Chile - Distribución de Riesgos en el Tiempo",x ="Año",y ="Tasa Promedio de Mortalidad",color ="Causa de Muerte") +theme_minimal() +theme(legend.position ="right")
Contexto: Mediante el grafico se visualiza el TOP 15 de la distribución de riesgo para las diferentes causas de muertes de Chile.
Tipo de visualización: Hazards Función de tasa de riesgo.
Fuente de datos: OECD Data Explorer https://acortar.link/2UDMpR.
Dia 8: Circular
chile_data <- chile_data %>%filter(SEX !="_T")# Calcular el total de muertes por génerogender_distribution <- chile_data %>%filter(!is.na(SEX) &!is.na(OBS_VALUE)) %>%group_by(SEX) %>%summarise(total_deaths =sum(OBS_VALUE, na.rm =TRUE)) %>%arrange(desc(total_deaths))# Crear el gráfico en forma de anilloggplot(gender_distribution, aes(x ="", y = total_deaths, fill = SEX)) +geom_bar(width =0.7, stat ="identity") +# Ajuste el ancho para crear el efecto de anillocoord_polar("y") +labs(title ="Distribución de Muertes por Género en Chile",fill ="Género") +theme_minimal() +theme(axis.text =element_blank(), # Elimina los números alrededoraxis.ticks =element_blank(), # Elimina las marcas de los ejespanel.grid =element_blank()) +# Elimina las líneas de la cuadrículageom_text(aes(label = total_deaths), position =position_stack(vjust =0.5))
Contexto: Mediante el grafico se visualiza cual es el género con mayor tasa de muertes y su comparación con el otro.
Tipo de visualización: Circular.
Fuente de datos: OECD Data Explorer https://acortar.link/2UDMpR.
Dia 9: major/minor
# Leer el dataset de goles de Cristiano Ronaldoronaldo_goals <-read.csv("CristianoGoles.csv")# Limpiar y preparar los datosronaldo_goals <- ronaldo_goals %>%# Convertir el minuto en un número, eliminando "+X" en goles de tiempo adicionalmutate(Minute_clean =as.numeric(gsub("\\+.*", "", Minute))) %>%# Filtrar datos válidosfilter(!is.na(Minute_clean))# Crear el histograma de goles por minutoggplot(ronaldo_goals, aes(x = Minute_clean)) +geom_histogram(binwidth =5, fill ="skyblue", color ="black", alpha =0.7) +geom_hline(yintercept =35, color ="red", linetype ="dashed", size =1) +# Línea horizontal en 35 goleslabs(title ="Distribución de Goles de Cristiano Ronaldo por Minuto del Partido",x ="Minuto del Partido",y ="Cantidad de Goles") +theme_minimal()
Contexto: Mediante el grafico de histograma podemos ver la concentración de los minutos del partido en donde Cristiano Ronaldo hace más goles (major) y en qué tiempo hace pocos (minor)
Tipo de visualización: Major/minor histograma.
Fuente de datos: Kaggle, https://www.kaggle.com/datasets/azminetoushikwasi/cr7-cristiano-ronaldo-all-club-goals-stats
Dia 10: physical
# Leer el dataset desde un archivo CSV (asumiendo que está guardado como 'dengue_data.csv')dengue_data <-read.csv("dengue_features_train.csv")# Eliminar filas con NAs en las columnas de temperaturadengue_data <-na.omit(dengue_data)# Convertir las columnas de temperatura a formato numérico si es necesariodengue_data$station_avg_temp_c <-as.numeric(dengue_data$station_avg_temp_c)dengue_data$station_max_temp_c <-as.numeric(dengue_data$station_max_temp_c)dengue_data$station_min_temp_c <-as.numeric(dengue_data$station_min_temp_c)# Crear el boxplot para las temperaturasggplot(dengue_data) +geom_boxplot(aes(x = city, y = station_avg_temp_c, fill = city)) +labs(title ="Boxplot de Temperaturas Promedio por Ciudad",x ="Ciudad",y ="Temperatura Promedio (°C)") +theme_minimal()
# Puedes repetir lo mismo para las otras columnas de temperatura (max y min)ggplot(dengue_data) +geom_boxplot(aes(x = city, y = station_max_temp_c, fill = city)) +labs(title ="Boxplot de Temperaturas Máximas por Ciudad",x ="Ciudad",y ="Temperatura Máxima (°C)") +theme_minimal()
ggplot(dengue_data) +geom_boxplot(aes(x = city, y = station_min_temp_c, fill = city)) +labs(title ="Boxplot de Temperaturas Mínimas por Ciudad",x ="Ciudad",y ="Temperatura Mínima (°C)") +theme_minimal()
Contexto: Mediante el grafico de caja podemos ver la concentraciones de las temperaturas para ambas ciudades y también sus posibles valores fuera de rango.
Tipo de visualización: Physical boxplot.
Fuente de datos: https://www.drivendata.org/competitions/44/dengai-predicting-disease-spread/page/82/
Dia 11: mobile friendly
# Agrupar los datos por ciudad y semana del año, y calcular la media de temperaturadata_grouped <- dengue_data %>%group_by(city, weekofyear) %>%summarise(avg_temp =mean(reanalysis_air_temp_k, na.rm =TRUE)) %>%ungroup() # Desagrupar para evitar problemas en gráficos
`summarise()` has grouped output by 'city'. You can override using the
`.groups` argument.
# Crear gráfico de líneas interactivohighchart() %>%hc_title(text ="Temperatura Promedio Semanal por Ciudad") %>%hc_xAxis(categories =as.character(data_grouped$weekofyear), title =list(text ="Semana del Año")) %>%hc_yAxis(title =list(text ="Temperatura (K)")) %>%hc_add_series(data = data_grouped %>%filter(city ==unique(data_grouped$city)[1]) %>%pull(avg_temp),name =unique(data_grouped$city)[1],type ="line", color ="blue" ) %>%hc_add_series(data = data_grouped %>%filter(city ==unique(data_grouped$city)[2]) %>%pull(avg_temp),name =unique(data_grouped$city)[2],type ="line", color ="green" ) %>%hc_tooltip(pointFormat ="Temperatura: <b>{point.y:.2f} K</b>")
Contexto: Mediante el grafico de líneas podemos ver como varia la temperatura a lo largo de las semanas del año de las dos ciudades involucradas.
Tipo de visualización: Mobile fiendly, usando la libreria highchart el cual permite crear gráficos iterativos y con diseño response lo cual es amigable para pantallas móviles.
Fuente de datos: https://www.drivendata.org/competitions/44/dengai-predicting-disease-spread/page/82/
Dia 12: Reuters Graphics
### Hacerlo con dataWrapper# Calcular el promedio de NDVI por semana y ciudaddata_heatmap <- dengue_data %>%group_by(year, weekofyear, city) %>%summarize(avg_ndvi =mean(ndvi_ne+ndvi_nw+ndvi_se+ndvi_sw, na.rm =TRUE)) %>%ungroup()
`summarise()` has grouped output by 'year', 'weekofyear'. You can override
using the `.groups` argument.
# Graficar un mapa de calorggplot(data_heatmap, aes(x = weekofyear, y = year, fill = avg_ndvi)) +geom_tile(color ="white") +scale_fill_gradient(low ="lightblue", high ="darkgreen") +labs(title ="Mapa de Calor del NDVI Promedio por Semana y Ciudad",x ="Semana del Año",y ="Año",fill ="NDVI Promedio") +facet_wrap(~ city) +# Crear un gráfico para cada ciudadtheme_minimal()
Contexto: Mediante el grafico podemos ver como varia el índice de vegetación en las respectivas ciudades a lo largo de los años y de las semanas de esos años
Tipo de visualización: Heatmap.
Fuente de datos: https://www.drivendata.org/competitions/44/dengai-predicting-disease-spread/page/82/
———————————-relationship—————————————–
Dia 13: Family
# Leer el archivo kinship.datakinship_data <-readLines("kinship.data")# Inicializar listas para padres e hijosfathers <-c()mothers <-c()children <-c()# Procesar los datos para extraer relacionesfor (line in kinship_data) {if (grepl("father", line)) { parts <-unlist(strsplit(line, "[(),]")) fathers <-c(fathers, trimws(parts[2])) children <-c(children, trimws(parts[3])) }if (grepl("mother", line)) { parts <-unlist(strsplit(line, "[(),]")) mothers <-c(mothers, trimws(parts[2])) children <-c(children, trimws(parts[3])) }}# Crear un dataframe a partir de las relaciones extraídaskinship_df <-data.frame(parent =c(fathers, mothers),child = children,stringsAsFactors =FALSE)# Crear un gráfico interactivo con visNetworknodes <-data.frame(id =unique(c(kinship_df$parent, kinship_df$child)),label =unique(c(kinship_df$parent, kinship_df$child)),stringsAsFactors =FALSE)edges <-data.frame(from = kinship_df$parent, to = kinship_df$child)# Visualizar el gráficovisNetwork(nodes, edges, height ="500px", width ="100%") %>%visEdges(arrows ="to") %>%visOptions(highlightNearest =TRUE, nodesIdSelection =TRUE) %>%visNodes(color =list(background ="lightblue", border ="black"))
Contexto: Mediante el grafico de grafos se puede ver las relaciones entre los diferentes integrantes del dataSet.
Tipo de visualización: Family, usando la librería visNetwork el cual permite crear gráficos iterativos que nos permite elegir la persona a la cual queremos ver sus relaciones familiares.
Fuente de datos: https://archive.ics.uci.edu/dataset/55/kinship
Dia 14: Heatmap
# Filtrar solo las columnas relevantes para el heatmapprecipitation_data <- dengue_data %>%select(city, weekofyear, station_precip_mm) %>%group_by(city, weekofyear) %>%summarise(avg_precipitation =mean(station_precip_mm, na.rm =TRUE))
`summarise()` has grouped output by 'city'. You can override using the
`.groups` argument.
# Crear el heatmapggplot(precipitation_data, aes(x = weekofyear, y = city, fill = avg_precipitation)) +geom_tile() +scale_fill_gradient(low ="white", high ="blue", name ="Avg Precipitation (mm)") +labs(title ="Heatmap of Average Precipitation by City and Week of Year",x ="Week of Year",y ="City") +theme_minimal() +theme(axis.text.x =element_text(angle =45, hjust =1))
Contexto: El siguiente mapa de calor muestra el nivel de precipitaciones a lo largo de las semanas del año por cada ciudad.
Tipo de visualización: Heatmap
Fuente de datos: https://www.drivendata.org/competitions/44/dengai-predicting-disease-spread/page/82/
Dia 15: Historical
# Filtrar y calcular la temperatura promedio por año y ciudadtemperature_yearly <- dengue_data %>%select(city, year, station_avg_temp_c) %>%group_by(city, year) %>%summarise(avg_temperature =mean(station_avg_temp_c, na.rm =TRUE))
`summarise()` has grouped output by 'city'. You can override using the
`.groups` argument.
# Crear el gráfico de líneasggplot(temperature_yearly, aes(x = year, y = avg_temperature, color = city)) +geom_line(size =1) +geom_point(size =2) +labs(title ="Average Temperature Variation Over the Years",x ="Year",y ="Average Temperature (°C)",color ="City") +theme_minimal() +theme(legend.position ="top")
Contexto: El siguiente grafico muestra como varia la temperatura promedio a lo largo de los años para las 2 ciudades involucradas.
Tipo de visualización: Grafico de líneas
Fuente de datos: https://www.drivendata.org/competitions/44/dengai-predicting-disease-spread/page/82/
Dia 16: Weather
# Filtrar las columnas relevantes para el gráficohumidity_precipitation_data <- dengue_data %>%select(reanalysis_relative_humidity_percent, station_precip_mm) %>%filter(!is.na(reanalysis_relative_humidity_percent) &!is.na(station_precip_mm))# Crear el diagrama de dispersiónggplot(humidity_precipitation_data, aes(x = reanalysis_relative_humidity_percent, y = station_precip_mm)) +geom_point(color ="blue", alpha =0.6) +# Cambiar color de los puntos a azullabs(title ="Scatter Plot of Humidity vs. Precipitation",x ="Relative Humidity (%)",y ="Precipitation (mm)") +theme_minimal()
Contexto: El siguiente grafico muestra la dispersión entre la humedad y la cantidad de precipitaciones en donde se puede ver una relación directamente proporcional entre las variables.
Tipo de visualización: Grafico de dispersión
Fuente de datos: https://www.drivendata.org/competitions/44/dengai-predicting-disease-spread/page/82/
Dia 17: Networks
# Cargar el datasetles_miserables_data <-read.csv("lesmiserables.csv")# Crear el grafo a partir del dataframeles_miserables_graph <-graph_from_data_frame(les_miserables_data, directed =FALSE)# Crear la visualización de la red de Les Misérablesggraph(les_miserables_graph, layout ="fr") +# Usar el layout Fruchterman-Reingoldgeom_edge_link(aes(edge_alpha =0.3), color ="gray") +# Colorear los enlaces en gris con transparenciageom_node_point(color ="skyblue", size =5) +# Colorear los nodos en azul cielogeom_node_text(aes(label = name), vjust =1, hjust =1, size =3) +# Agregar etiquetas a los nodostheme_void() +# Sin ejes ni fondolabs(title ="Red de Personajes en Les Misérables") # Título del gráfico
Contexto: El siguiente grafico se muestra la red de los personajes en Les Misérables y sus relacion con cada uno de los otros personales.
Tipo de visualización: Grafico de red
Fuente de datos: https://github.com/graphistry/pygraphistry/blob/master/demos/data/lesmiserables.csv
Dia 18: Asian Development Bank
# Cargar el datasetasian <-read.csv("ADB Climate Change Financing - 2023-based on commitments.csv", stringsAsFactors =FALSE)head(asian)
Date.Signed Project.Number
1 07-Dec-23 42007-021
2 07-Dec-23 42007-021
3 07-Dec-23 42007-021
4 15-Dec-23 48404-005
5 27-Nov-23 49078-004
6 15-Dec-23 51126-004
Project.Name
1 Small and Medium-Sized Enterprises Development Program (Subprogram 2)
2 Small and Medium-Sized Enterprises Development Program (Subprogram 2)
3 Small and Medium-Sized Enterprises Development Program (Subprogram 2)
4 Central Asia Regional Economic Cooperation Corridor Development Investment Program (Tranche 3)
5 Seismic Safety Improvement Program – Additional Financing
6 Sindh Secondary Education Improvement Project, Additional Financing
Country.Code Developing.Member.Country Region Department
1 UZB Uzbekistan Central and West Asia CWRD
2 UZB Uzbekistan Central and West Asia CWRD
3 UZB Uzbekistan Central and West Asia CWRD
4 PAK Pakistan Central and West Asia CWRD
5 ARM Armenia Central and West Asia CWRD
6 PAK Pakistan Central and West Asia CWRD
Operations.Division Category.Type..Sovereign.Nonsovereign.Financing.
1 Sovereign
2 Sovereign
3 Sovereign
4 CWTC Sovereign
5 ARMM Sovereign
6 CWSS Sovereign
Project.Financing.Amount....million. Mode.of.Financial.Assistance
1 100 Policy-Based Support
2 Policy-Based Support
3 Policy-Based Support
4 471.9 Investment Support
5 85.7 Results Based Lending
6 310.8 Investment Support
Product.Type Loan.Grant.Investment.Approval.Number Project.Financing.Type
1 Loan 4415 ADB funds
2 Loan 4415 ADB funds
3 Loan 4415 ADB funds
4 Loan 4416 ADB funds
5 Loan 4351 ADB funds
6 Loan 4409 ADB funds
Fund.Source Signed.amount....million.
1 OCR 100
2 OCR
3 OCR
4 OCR 360
5 OCR 71.97
6 Concessional OCR 275
Primary.Sector
1 Industry and trade
2 Industry and trade
3 Industry and trade
4 Transport
5 Water and other urban infrastructure and services
6 Education
Sector Climate.Change.Response
1 Education Mitigation
2 Finance Mitigation
3 Industry and trade Mitigation
4 Transport Dual-use
5 Water and other urban infrastructure and services Dual-use
6 Education Dual-use
Climate.Change.Impact.on.the.Project Mitigation.Finance....million.
1 Low 4.43
2 Low 7
3 Low 10
4 High 1.45
5 Medium 4.86
6 High 15
Adaptation.Finance....million. Type.of.Financing Currency
1 NA Investment US$
2 NA Investment US$
3 NA Investment US$
4 129.34 Investment US$
5 4.13 Investment US$
6 78.00 Investment US$
Project.URL X X.1 X.2 X.3
1 https://www.adb.org/projects/42007-021/main NA NA NA
2 https://www.adb.org/projects/42007-021/main NA NA NA
3 https://www.adb.org/projects/42007-021/main NA NA NA
4 https://www.adb.org/projects/48404-005/main NA NA NA
5 https://www.adb.org/projects/49078-004/main NA NA NA
6 https://www.adb.org/projects/51126-004/main NA NA NA
asian$`Project.Financing.Amount....million.`<-as.numeric(gsub(",", "", asian$`Project.Financing.Amount....million.`))# Agrupar por país y sumar las donacionestop_donors <- asian %>%group_by(Developing.Member.Country) %>%summarise(Total.Financing =sum(`Project.Financing.Amount....million.`, na.rm =TRUE)) %>%arrange(desc(Total.Financing)) %>%slice_head(n =10)# Crear un gráfico de barrasggplot(top_donors, aes(x =reorder(Developing.Member.Country, -Total.Financing), y = Total.Financing)) +geom_bar(stat ="identity", fill ="green") +labs(title ="Top 10 Países que Más Donan para Cambio Climático",x ="País",y ="Monto de Financiación (millones $)") +theme_minimal() +coord_flip() # Para mejor legibilidad
Contexto: El siguiente grafico se muestra los 10 países que más donan para el cambio climático.
Tipo de visualización: Grafico de barras horizontales
Fuente de datos: https://data.adb.org/dataset/climate-change-financing-adb
—————————— Time Series ————————————
Dia 19: Dinosaurs
ggplot(datasaurus_dozen, aes(x = x, y = y)) +geom_point(color ="darkblue", size =2, alpha =0.7) +facet_wrap(~dataset, ncol =3) +theme_minimal() +labs(title ="Datasaurus Dozen: Diferentes Formas con la Misma Estadística",x ="Eje X",y ="Eje Y")
Contexto: El siguiente grafico de datasaurus_dozen, varios de sus conjuntos tienen formas únicas, como círculos, estrellas o líneas, y uno de ellos tiene una forma que se parece a un dinosaurio, que es el que le dio el nombre al conjunto completo.
Tipo de visualización: Geom Point
Fuente de datos: datasaurus_dozen R Studio
Dia 20: Correlaciones
precip_anual_sj <- dengue_data %>%filter(city =="sj") %>%group_by(year) %>%summarize(total_precipitation =sum(precipitation_amt_mm, na.rm =TRUE))# Crear el gráfico para San Juanggplot(precip_anual_sj, aes(x = year, y = total_precipitation)) +geom_point(color ="dodgerblue", size =3, alpha =0.7) +geom_smooth(method ="lm", color ="darkred", se =FALSE) +labs(title ="Correlación entre Precipitación Anual y Años en San Juan",x ="Año",y ="Precipitación Anual Total (mm)") +theme_minimal()
`geom_smooth()` using formula = 'y ~ x'
Contexto: El siguiente grafico muestra la correlación de las precipitaciones promedios de la ciudad de San Juan a lo largo de los años.
Tipo de visualización: Correlations
Fuente de datos: https://www.drivendata.org/competitions/44/dengai-predicting-disease-spread/page/82/
Dia 21: Green Energy
Contexto: El siguiente grafico muestra como varia la inversión de energías verdes en el tiempo
Tipo de visualización: Grafico de lineas con dataWrapper
Fuente de datos: https://www.kaggle.com/datasets/anshtanwar/global-data-on-sustainable-energy
Dia 22: Mobility
Contexto: El siguiente grafico muestra como cambio el porcentaje de personas que iban a ciertos lugares, como el parque, las farmacias, etc
Tipo de visualización: Grafico de barras horizontales agrupadas
Fuente de datos: https://www.kaggle.com/datasets/chaibapat/google-mobility
Dia 23: Tyles
Contexto: El siguiente grafico muestra el porcentaje que tuvo cada país de contagiados por COVID 19
Tipo de visualización: Grafico de Donut slices
Fuente de datos: https://www.kaggle.com/datasets/themrityunjaypathak/covid-cases-and-deaths-worldwide
Dia 24: ILO Region for Africa
Contexto: El siguiente grafico muestra la variación del PIB de los algunos países de África
Tipo de visualización: Grafico de Área
Fuente de datos: https://ilostat.ilo.org/data/africa/
———————————Uncertainties———————————-
Dia 25: Global Change
Contexto: El siguiente grafico muestra las emisiones de CO2 de los diferentes países del mundo
Tipo de visualización: Grafico de mapa mundial
Fuente de datos: https://www.kaggle.com/datasets/thedevastator/global-fossil-co2-emissions-by-country-2002-2022/data
Dia 26: AI
Contexto: El siguiente grafico muestra el precio mensual de algunas herramientas de inteligencia artificial.
Tipo de visualización: Grafico de barras verticales
Fuente de datos: https://www.kaggle.com/datasets/muhammadtalhaawan/ai-5000-tools-2023
Dia 27: bad/good
Contexto: El siguiente grafico muestra la tendencia a lo largo de los años del porcentajes de personas en Estados Unidos que creen que el aborto debería ser legal bajo cualquier circunstancia..
Tipo de visualización: Grafico de líneas
Fuente de datos: https://www.kaggle.com/datasets/justin2028/perspectives-on-abortion-1975-2022/data
Dia 28: Trend
Contexto: El siguiente grafico muestra la tendencia de la esperanza de vida de 2 países, Ecuador y Estados Unidos
Tipo de visualización: Scater plot
Fuente de datos: https://www.kaggle.com/datasets/halimequintero/prediccion-esperanza-de-vida
Dia 29: Black/White
Contexto: El siguiente grafico muestra como la tasa de desempleo varia a través de los años en Ecuador
Tipo de visualización: Área
Fuente de datos: https://www.kaggle.com/datasets/pantanjali/unemployment-dataset
Dia 30: fivethirtyeight
Contexto: El siguiente grafico muestra como ha variado la aprobación del presidente Joe Biden a través del tiempo.
Tipo de visualización: MultiLines
Fuente de datos: https://projects.fivethirtyeight.com/polls/approval/joe-biden/?ex_cid=abcpromo